/**
 * parseInt(string, radix) radix 在2-36之间
 * radix不指定的或者0，默认进制为10，若string 0x开头已16进制进行计算
 * 结论：
 * 如果第一个参数string的第一个值就大于等于第二个参数radix，那么直接返回NaN
 * 如果第一个参数string的第一个值符合条件，其他值不符合条件，那么不符合条件的值到最后会被忽略，然后进行计算
 */
parseInt('123', 5);
// 1*5*5 + 2*5+3*1
parseInt('125', 5);
// parseInt('12', 5);
parseInt('525', 5);
// NaN
parseInt('155', 5);
// parseInt('1', 5);
parseInt('123', 37);
//NaN 超过范围
parseInt('123', 0);
//123 当做10进制处理
parseInt('123', undefined);
//123 当做10进制处理
parseInt('123', null);
//123 当做10进制处理
// 记住0， undefined， null三种特殊的情况，这时字符串以0x开头同样也会被当做10进制处理
parseInt('0x10');
// 如果字符串以0x或0X开头，parseInt会将其按照十六进制数解析
parseInt('011');
// 如果字符串以0开头，将其按照10进制解析
parseInt(011); // 9
// 如果参数以0开头，但不是字符串，则会先将数值转成字符串，然后解析，见规则c。 (011).toString()得到的结果是‘9’

// 数值千分位分割， toLocaleString兼容性不好
let num = 123456789;
num.toLocaleString()

// 正则只能实现整数
let num2 = '12345678'
let reg = /(?=\B(\d{3})+$)/g
console.log(num2.replace(reg,",")) //12,345,678


function numFormat(num){
  let result=num.toString().indexOf(".")!==-1?
    num.toLocaleString():
    num.replace(/(\d)(?=(\d{3})+$)/g,"$1,")
  console.log(result);
}
numFormat(1234568.23);
